API란

Published: Jan 13, 2020 by Dev-hwon

API?

API(Application Programming Interface)

  • 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
  • 두개의 시스템이 서로 상호 작용하기 위한 인터페이스
  • API라 하면 보통 REST API를 지칭
  • 웹사이트는 HTTP(S) 프로토콜을 사용하는 REST API 기반으로 구축



API 접근 권한

Authentication VS Authorization

  • Authentication: Identity(정체)가 맞다는 증명
  • Authorization: API를 통한 어떠한 액션을 허용

API가 Authentication을 하여도 어떠한 액션에 대해서는 Authorization을 허용하지 않을 수 있음

API의 시큐리티(보안)

어떠한 시큐리티 (보안) 방안이 없을 경우:

  • DELETE 리퀘스트를 통해서 다른 이용자의 정보를 지울 수도 있음
  • 제 3자에게 데이터 유출로 이어질 수 있음
  • 누가 API를 사용하는지, 어떤 정보를 가져가는지 트래킹 할 수 없음

API Key

API Key란 Request URL 혹은 Request 헤더에 포함되는 긴 스트링

Basic Auth

Basic Auth의 경우 username:password 와 같은 Credential을 Base64로 인코딩한 값을 Request 헤더 안에 포함


Resource

API를 통해 리턴된 정보 하나의 Resource 안에 여러개의 Endpoints가 존재

Endpoint

Resource를 엑세스하는 경로/방법

GET/comapaigns/{campaign_id}/actions/send

  • GET: Method
  • comapaigns/{campaign_id}/actions/send: Endpoint

Method

Method 내용
GET 해당 리소스를 조회하고 정보를 가져옴
HEAD GET 방식과 동일하나 응답코드와 HEAD만 가져옴
POST 요청된 리소스를 생성
PUT 요청된 리소스를 업데이트
DELETE 요청된 리소스를 삭제

Parameter

Endpoint를 통해 리퀘스트 할 때 같이 전달하는 옵션들

Type 내용
Header Request header에 포함되는 Parameter로 주로 Authorization에 관련
Path Query String (?) 이전에 Endpoint Path 안에 포함되는 변수
예) {id}
Query String Query String (?) 이후에 포함되는 Parameters
예) ?utm_source=facebook&utm_campaign=summer_sales
Request Body Request Body 안에 포함되는 Parameters. 주로 JSON 형태
API Application Programming Interface 데이터 엔지니어링 Data Engineering